<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./dist/vue.js"></script>
    <style>
        .active{
            color:red
        }
    </style>
</head>
<body>
    <!-- 
      父组件直接使用子组件的方法:
        父组件在调用子组件的地方加一个ref="aaa", 父组件中再自定义一个方法来获取子组件的数据.
        在这个自定义方法中通过 this.$refs.aaa.子组件中想要拿到数据的属性名
    -->
    <div id="app">
       <my-parent></my-parent>
    </div>
</body>
<template id="parent">
    <div>父组件
        <button @click="getData">获取子组件的数据</button>
        <button @click="getMethod">获取子组件的方法</button>
        <my-child ref="aaa"></my-child>
    </div>
</template>
<template id="child">
    <div>子组件
        <h3>我是子组件</h3>
    </div>
</template>
<script>
    const Child={
        template:'#child',
        data(){
           return {
               name:"张三"
           }
        },
        methods:{
            fn(){
                console.log('调用fn')
            }
        }
    }
    const Parent={
        template:'#parent',
        components:{
            'my-child':Child
        },
        methods:{
            getData(){
                console.log(this) // this中有refs
                console.log(this.$refs.aaa.name) // 张三
            },
            getMethod(){
                this.$refs.aaa.fn() // 调用fn
            }
        }
    }
    new Vue({
        el:"#app",
        components:{
            'my-parent':Parent
        }
    })
</script>
</html>